﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace rent_car.Manejadores
{
    class ControlRenta
    {
        private static EnlaceDatosDataContext manejadorBd;

        private static ControlRenta instancia;

        public static ControlRenta GetInstancia() {
        
            if(instancia == null){
                instancia = new ControlRenta();            
            }
            return instancia;
        }

        private ControlRenta()
        {
            manejadorBd = new EnlaceDatosDataContext();
        }



        public void rentar(renta r)
        {
            r.periodo_renta.renta = r;
            manejadorBd.agregarRentas(
                r.usuario.persona.persona_id,
                r.cliente.persona.persona_id,
                r.fecha,
                r.estado,
                r.deposito,
                r.precio_total);
            r.renta_id = manejadorBd.rentas.ToList().Last().renta_id;
            agregarDetallesRenta(r);
            agregarPeriodoRenta(r);
        }

        private void agregarPeriodoRenta(renta r)
        {
            manejadorBd.agregarPeriodoRentas(r.renta_id, r.periodo_renta.fecha_desde, r.periodo_renta.fecha_hasta, r.periodo_renta.cant_dias, r.periodo_renta.precio);

        }       

        private void agregarDetallesRenta(renta r)
        {
            foreach (detalles_renta dr in r.detalles_rentas)
            {
                manejadorBd.agregarDetallesRentas(dr.renta.renta_id, dr.vehiculo.vehiculo_id, dr.precio);
            }
        }
    }
}
